Data communication networks may include various routers and switches coupled together and configured to pass data to one another. These devices will be referred to herein as “network elements.” Data is communicated through the data communication network by passing protocol data units, such as Internet Protocol packets, Ethernet Frames, data cells, segments, or other logical associations of bits/bytes of data, between the network elements by utilizing one or more communication links between the network elements. A particular protocol data unit may be handled by multiple network elements and cross multiple communication links as it travels between its source and its destination over the network.
The various network elements on the communication network communicate with each other using predefined sets of rules, commonly referred to as protocols. Different protocols are used to govern different aspects of the communication, such as how signals should be formed for transmission between network elements, various aspects of what the protocol data units should look like, how protocol data units should be handled or routed through the network by the network elements, and how information such as routing information should be exchanged between the network elements.
At the physical layer, in a digital communication network, the network elements transmit and receive binary signals that represent either zeros or ones. There are several ways that this may be implemented, depending on the type of physical media being used to transport the signals. Where the network elements are communicating over an optical fiber 14, for example as shown in FIG. 1A, the transmitter 10 may transmit binary signals by turning a laser on and off. Where an electrically conductive physical medium 16 is used, as shown in FIG. 1B, the binary signals may be formed by adjusting a voltage on the conductor. Where the network elements are communicating using a wireless protocol as shown in FIG. 1C, the binary signals may be encoded onto the carrier frequency 18 being used by the network elements to communicate with each other. Regardless of the particular physical medium in use, the transmitter 10 will transmit a series of zeros and ones which will be received by the receiver 12, so that the transmitter is able to convey information to the receiver.
When a signal is transmitted on a fiber, electrical cable, wireless carrier, etc., it is possible for the signal to be distorted during transmission. Thus, when the receiver receives the signal, there is a possibility that the received signal will include an error component. Likewise, the receiver and transmitter are generally required to operate at the same frequency so that the receiver reads data from the signal at the same rate that the transmitter transmitted the data on the signal. An explicit clocking signal may be used to synchronize the transmitter and receiver or, alternatively, the receiver may extract synchronization information from the received waveform.
FIG. 2 shows an example transmitter/receiver combination that may be used to transmit data between a transmitter 10 and receiver 12 over an optical, electrical, or wireless physical medium. The example shown in FIG. 2 is designed to enable the receiver to correct errors introduced during transmission and to also extract a clocking signal from the received signal.
Specifically, as shown in FIG. 2, a transmitter 10 will encode a signal to be transmitted using an encoder 20. The encoder allows information to be added to the signal that will enable the receiver to recover the original signal free from errors that may occur during transmission. There are several known encoding schemes of this nature, including Reed-Solomon, Turbo, and Bose, Ray-Chaudhri, Hocquenghem (BCH) encoding schemes. Other encoding schemes may exist as well. Reed-Solomon error correction, for example, operates by oversampling a polynomial constructed from the data to be transmitted. The polynomial is evaluated at several points, and these values are transmitted as signal S. Sampling the polynomial more often than is necessary makes the polynomial over-determined. As long as the receiver receives many of the points correctly, the receiver can recover the original polynomial even in the presence of a few bad points. Hence, the receiver 12 can use RS-8 error corrector 24 to recover the original polynomial used by encoder 20 and, hence, can recreate the original data that was used to create the polynomial free from any errors that may have occurred during transmission. Other error correction techniques may use different methods to enable the original data to be recovered at a receiver free from errors that may occur during transmission as is known in the art.
The transmitter/receiver pair shown in FIG. 2 is also configured to detect clock timing information from the incoming signal so that the receiver knows the frequency with which to read information from the physical medium. If the receiver is not operating at the same frequency as the transmitter, it may introduce errors into the received signal which is undesirable. Generally the receiver will use a Phase Locked Loop (PLL) or other similar structure to lock onto the transmission frequency being used by the transmitter 10. Since PLLs and other synchronization circuits are well known in the art, the actual clock extraction portion has not been shown in FIG. 2 to avoid obfuscation of the other portions of the drawing.
In a system where the receiver relies on extracting the clocking frequency from the input signal, it is important for the input signal to not include a long string of zeros or a long string of ones, since this may cause the receiver to lose synchronization with the transmitter. Specifically, a long string of zeros or ones will be seen by the receiver as a constant voltage on the electrically conductive wire or as a constant light/dark signal on an optical fiber. A constant value does not have any transitions between states (e.g. high/low voltage or on/off light) which is what the PLL uses to determine the transmission frequency. Hence, a prolonged period without state transition does not provide the PLL or other synchronization circuit with information as to the frequency in use by the transmitter and can cause the receiver to lose synchronization with the transmitter.
Accordingly, to avoid transmission of long sequences of zeros or long sequences of ones, it is common for the transmitter to scramble the output signal (S), for example using a Linear Feedback Shift Register (LFSR) scrambler 22. A linear feedback shift register is a shift register whose input bit is a linear function of its previous state. Fibonacci LFSRs and Galois LFSRs are two common implementations of LFSRs. The LFSRs may have a set number of places in the register, e.g. 16, and if properly designed will cycle through all possible values of the register to randomize the output such that the output from the scrambler f(S) is not likely to contain long strings of all zeros or all ones. As shown in FIG. 2, the receiver will use the same scrambler 22 to unscramble the signal to remove the contribution from the scrambler prior to decoding the signal using error corrector 24. As noted above, the error corrector will remove errors that may have occurred in the signal during transmission.
There are several sources of error that may contribute to corruption of the signal during transmission between the transmitter and receiver. For example, the signals may become weaker over time/distance. Likewise, external sources of noise may be added to the signal so that the signal received by the receiver may have other components in addition to the intended data output by the transmitter. The receiver is responsible for detecting the signal and making a decision, at the clocking frequency, as to whether the signal on the physical medium is a zero or a one. Typically, the receiver will use a threshold to make this decision—if the received signal is above the threshold the signal is interpreted as a one and, conversely, if the received signal is below the threshold the signal is interpreted as a zero. If the receiver does not implement this process correctly, the thresholding process at the receiver may likewise be a source of error. Accordingly, it would be desirable to be able to adjust the thresholding process at the receiver to improve the fidelity of signals received by the receiver on a communication network.